perm filename CODE4.FAI[NEW,LCS]9 blob sn#496792 filedate 1980-01-30 generic text, type T, neo UTF8
00100			TITLE ITMSUB
00200		INTERNAL ITMSUB,OLDTOP
00300		EXTERNAL BM,NOZERO,LINX,ROFF,CENTX,STF,LINES,.COMM.
00400		EXTERNAL DAT,RHORZ,CLEFS,PLTR,MIN,POSI,ALF,RDRAW
00500		DEFINE R9 <.COMM.+=10 >↔ DEFINE R8<.COMM.+=9 >
00600		DEFINE J2 <.COMM.+3 >↔	DEFINE J10 <.COMM.+=31 >
00700		DEFINE J7 <.COMM.+=28 >
00800	OLDTOP:	0
00900	;	00300	      SUBROUTINE ITMSUB
01000	;	00400	      IMPLICIT INTEGER(A-Q,S-Z)
01100	;	00500	      REAL DIS,DISX,HGT,POS,CENTR,STFF,HGT1,XDIS
01200	;	00600	      COMMON/STF/RSTFAC(0/7),RSTJ2/MIN/MINI,RMINI
01300	;	00700	      COMMON R2,JA,CENTR,J2,RJQ(20),JQ(16),RE,RF,RG,RH/BM/RA,RC,RJY
01400	;	00800	      COMMON/POSI/STFF(0/7),JJ2,POS/PLTR/PLT,RHT,DIS,XDIS
01500	;	00900	      COMMON/ALF/QQ(3),RST7,RST18,R3Q,JY,RD,RX,RW,RJX,RJ,L,K,
01600	;	01000	     1 RJA,YY,DISX,HGT,RZ,INP(53)
01700	;	01100	      COMMON/DAT/RACNT(65),RDOT(17),XAC(7),RNOTE(22),RACCI(22),NACCI(3)
01800	;	01200	      EQUIVALENCE (J3,JQ(1)),(J4,JQ(2)),(J5,JQ(3)),(R5,RJQ(3)),(R11,
01900	;	01300	     1RJQ(9)),(R6,RJQ(4)),(J7,JQ(5)),(J8,JQ(6)),(J9,JQ(7)),(J10,JQ(8))
02000	;	01400	     1,(J11,JQ(9)),(J6,JQ(4)),(R9,RJQ(7)),(R8,RJQ(6)),(R3,RJQ(1))
02100	;	01500	     1 ,(R7,RJQ(5)),(R4,RJQ(2)),(R9,RJQ(7)),(R10,RJQ(8)),(RX3,RJQ(20))
02200	;	01600	      DATA R14/14.54/,RTF/3.0/,RHGT/48.0/,R2HGT/96.0/,RBM/.83/
02300	;	01700	     1,RDBR/ 3.5/,RBR/.33/,RBX/ 7.0/
02400	ITMSUB:	0	;01800	C  RDBR IS SPACER FOR DBL BAR.
02500	      	MOVSI 	3,203700	;	02000	      RST7=RSTJ2*7.
02600	      	FMPR  	3,STF+=8 
02700	      	MOVEM 	3,ALF+3     ;	02100	      RST18=RSTJ2*18.
02800	      	MOVSI 	02,205440
02900		FMPR 2,STF+=8
03000	      	MOVEM 	02,ALF+4 ;2200	C  TO COMPENSATE FOR NOTE #3 COMING AT POS=0
03100	      	MOVE  	02,.COMM.+4    ;02400	      R3Q=R3
03200	     	MOVEM 	02,ALF+5         ;	C   NEXT DRAWS STRAIGHT LINES
03300	      	FMPR  	3,.COMM.+5    ;	02700	      RD=R4*RST7
03400	      	MOVEM 	3,ALF+7     ;	02800	      RA=0
03500	      	SETZM 	BM    	    ;	02900	      RX=RTF*RSTJ2+POS
03600	      	MOVE  	02,[3.0]   
03700	      	FMPR  	02,STF+=8 
03800	      	FADR  	02,POSI+=9   
03900	      	MOVEM 	02,ALF+=8    ; XDIS=1./DIS >  TO REPLACE ALL 1./DIS'S
04000	;				03010	      J10=J10*DIS*RSTJ2
04100		FLTR 4,J10       		;MOVE 4,.COMM.+=31
04200		FMPR 4,PLTR+2
04300		FMPR 4,STF+=8
04400		KIFIX 0,4		;JSA 16,IFIX
04500	      	MOVEM 	0,J10   
04600	; THICKNESS DEPENDS ON FINAL SIZE FACTOR (DIS) AND STAFF SIZE.(???!!)
04700	;;; 	MOVEI 	02,62 ;		03100	      IF(J5.EQ.50)GO TO 300
04800	;;; 	CAMN  	02,.COMM.+=26    
04900		MOVE	2,.COMM.+=26		;IF(J5.EQ.50.OR.J5.EQ.150)GO TO 300
05000		CAIE	2,=50	
05100		CAIN	2,=150  	;150 IS FOR 'PARTS' FEATURE - PUTS CRESC. IN ALL.
05200		JRST I300
05300		SKIPN .COMM.+7  ;03300	      IF(R6.NE.0)GO TO 401
05400		SKIPE .COMM.+=28
05500		JRST I401         ;   IF(J7.NE.0)GO TO 401
05600	;				03500	C  FOR BAR LINES
05700		MOVEI 	02,54   ;	03600	4000  JA=44
05800	      	MOVEM 	02,.COMM.+1 ;CODE # IS CHNGD SO BAR LINES WON'T AFFECT MAX. HGT.
05900	;         ↑↑↑↑↑↑↑↑↑ FOR VERTICAL WIGGLE (P6=0, P7=-1)
06000	      	SETZM 	DBR#   ;	03900	      DBR=0
06100		MOVE 2,.COMM.+=25	;04000	      IF(J4.LT.1000)GO TO 400
06200	      	CAIGE 2,1750    
06300	      	JRST  	I400  
06400	;  J4=1001 = DBL BAR,  =1401 = DBL BAR WITH RT. ONE HEAVY: J5=1=DOTS ADDED
06500	;				04500	      DBR=J4/1000
06600	      	IDIVI 	02,1750
06605		SKIPN .COMM.+=26	;IF(J5.NE.0)GO TO RPTBAR
06610		CAIG 2,1	;IF(DBR.LT.2)GO TO RPTBAR
06620		JRST RPTBAR
06630		AOS .COMM.+=26	;J5=1
06640		CAIN 2,4	;IF(DBR.EQ.4)DBR=1
06650		MOVEI 2,1
06660		MOVEM 2,DBR	;FOR REPEAT DBL.BAR WITH P5=0
06700	RPTBAR:	MOVEM 	02,DBR   ;P4=2000=DOTS ON RIGHT, =3000=BOTH SIDES
06710				;=4000=DOTS ON LEFT
06720	
06800	
06900		MOVEM 3,.COMM.+=25       ;	04600	      J4=J4-DBR*1000
07000	;				04700	C DBR=1 HEAVY BAR IS ON R
07100	;				04800	9400  RD=RDBR+RDBR*RSTJ2
07200	I9400:	MOVE  	1,[3.5]  
07300	      	FMPR  	1,STF+=8 
07400	      	FADR  	1,[3.5]  
07500	      	MOVEM 	1,ALF+7         ;  TO SPACE THIN BAR FROM HEAVY
07600	      	MOVE  	02,.COMM.+=26    ;05000	      IF(J5.EQ.0)GO TO 400
07700		JUMPE 2,I400      ;	05100	C  NEXT ADDS REPEAT DOTS TO DBL BAR.
07800	      	MOVE  	3,.COMM.+=25    ;05200	      L=J4
07900	      	MOVEM 	3,ALF+=12     ;	05300	      RJ=L/100
08000	      	IDIVI 	3,144
08100		FLTR 3,3		;TLC 3,232000
08200				;	FADR 3,3	IF(RJ.EQ.0)RJ=6.*RSTJ2
08300	      	JUMPN 	3,.+3    
08400	      	MOVSI 	3,203600
08500	      	FMPR  	3,STF+=8 
08600	      	MOVEM 	3,ALF+=11        ; HEAVY BAR WILL BE 5 LINES WIDE.
08700	      	MOVE  	.COMM.+4    ;	05600	      RZ=R3
08800	      	MOVEM  ALF+=18    ;	05700	      J4=0
08900	      	SETZM 	.COMM.+=25      ;  MUST BE 0 FOR DOTS IN 'NOTWRT'
09000	      	SKIPE 2,DBR	   	; J5 IS IN 2 YET!
09100		JRST .+4	     ;	05900	      IF(DBR.EQ.0)DBR=J5
09200		CAIL 2,4	;IF(J5.GT.3)J5=3   -- CATCHES TYPOS!
09300		MOVEI 2,3
09400	      	MOVEM 	02,DBR   	;IF(DBR.EQ.0)=J5
09500	;				06000	      J5=0
09600	      	SETZM .COMM.+=26        ; J5=1 RPT ↑, =2 RPT ↑, =3 RPT ↑
09700	      	FSC   	1,1		;06200	      RJA=RD*2.
09800	      	MOVEM 	1,ALF+=14   
09900	;6300 TO SPACE DOTS, NOT ACCURATE FOR VERY SMALL OR VERY LARGE SIZE FACTORS
10000		MOVEM 2,ALF+6    ;	06400	      JY=DBR
10100		CAIGE 2,2     ;		06500	      IF(DBR.LT.2)GO TO 8400
10200	      	JRST  	I8400 
10300	      	FADR  	3,ALF+=18    ;	06600	      R3=RJA+RJ+RZ
10400	      	FADR  	3,ALF+=14   
10500	      	MOVEM 	3,.COMM.+4    
10600	I7400:	MOVE 11,ALF+=12     ;  06700	7400  DO 3400 K=J2,MOD(L,100)+J2-1
10700		IDIVI 11,=100
10800		ADD 12,.COMM.+3
10900		SOJ 12,		;  12 IS LIMIT
11000	      	MOVE  	15,.COMM.+3
11100	I4:   	MOVE  	02,STF(15)	;06800	      RSTJ2=RSTFAC(K)
11200	      	MOVEM 	02,STF+=8 ;	06900	      POS=STFF(K)
11300	      	MOVE  	02,POSI(15)
11400	      	MOVEM 	02,POSI+=9   ;	07000	      R4=6
11500	      	MOVSI 	02,203600
11600	      	MOVEM 	02,.COMM.+5    ;07100	      CALL CENTX
11700	      	JSA   	16,CENTX 	;7200	C  SPACES DOTS OUT FROM BAR
11800	;07300	      CALL RDRAW(1,17.0,ALF+7OT,STF+=8,.COMM.+4,CENTR+RSTJ2,STF+=8)
11900	      	MOVE  	11,STF+=8 
12000	      	FADR  	11,.COMM.+2
12100	      	JSA   	16,RDRAW 
12200	      	JUMP [1]
12300	      	JUMP [17.0]
12400	      	JUMP DAT+=69		;EXTENDED FOR +65 TO +69 1/78
12500	      	JUMP STF+=8 
12600	      	JUMP .COMM.+4    
12700	      	JUMP  11   
12800	      	JUMP STF+=8 		;7400	C  GO GET THE DOT
12900	;				07500	      R4=8
13000	      	MOVSI 	02,204400
13100	      	MOVEM 	02,.COMM.+5    ;07600	      CALL CENTX
13200	      	JSA   	16,CENTX 
13300	;07700	3400  CALL RDRAW(1,17.0,ALF+7OT,STF+=8,.COMM.+4,CENTR+RSTJ2,STF+=8)
13400	I3400:	MOVE  	11,STF+=8 
13500	    	FADR  	11,.COMM.+2
13600	      	JSA   	16,RDRAW 
13700		JUMP [1]
13800		JUMP [17.0]
13900		JUMP DAT+=69
14000		JUMP STF+=8 
14100		JUMP .COMM.+4
14200		JUMP 11      
14300		JUMP STF+=8  
14400		CAMGE 15,12
14500		AOJA 15,I4
14600		SOS 2,ALF+6	;  JY=JY-1
14700		CAIGE 2,2	; IF(JY.LT.2)GO TO 4400
14800		JRST I4400
14900	I8400:	MOVE 3,STF+=8
15000		FSC 3,2
15100		FADR 3,ALF+=14      ; R3=RZ-RJA-4.*RSTJ2
15200	      	FSBR  	3,ALF+=18   
15300		MOVNM 3,.COMM.+4   ;	08100	      GO TO 7400
15400	      	JRST  	I7400 		;8200	C  DO I NEED ANY MORE RESETS????
15500	I4400:	MOVE  	02,ALF+=12     ;08300	4400  J4=L
15600	      	MOVEM 	02,.COMM.+=25    ;08400	      J7=RJ*DIS
15700	      	MOVE  	02,PLTR+2
15800	      	FMPR  	02,ALF+=11    
15900	      	KIFIX 0,2			;JSA   	16,IFIX  
16000						;     	JUMP 2
16100	      	MOVEM 	00,.COMM.+=28    
16200		JRST I5400       ;	08500	      GO TO 5400
16300	I400: 	MOVE  	02,.COMM.+=26    ;08600	400   IF(J5.NE.0)GO TO 9400
16400	      	JUMPN 	02,I9400 ;	08700	      K=J4/100
16500	      	MOVE  	4,.COMM.+=25    
16600	      	IDIVI 	4,144
16700	;8800	C  K IS FOR SPACING OF THIN BAR IN HEAVY-THIN ORDER
16800		FLTR 4,4	;8900	      J7=K*DIS
16900		FMPR 4,PLTR+2
17000	      	KIFIX 0,4			;JSA   	16,IFIX  
17100					;     	JUMP 4    
17200	      	MOVEM 	00,.COMM.+=28    
17300	;9000	C  J7=NUM OF STROKES -- BASED ON FINAL SIZE FACTOR (DIS)
17400	I5400:	SKIPGE 2,.COMM.+=25   ;09100	5400  L=MOD(J4,100)
17500		SETZ 2,			;	IF(J4.LT.0)J4=0
17600	 	IDIVI 2,=100		;ABOVE FOR INVIS. BARS (AT PRINT TIME)
17700	;;;	SKIPN 3      ;		09200	      IF(L.EQ.0)L=1
17800	;;;	SKIPA
17900		SKIPE 3
18000		SOJ 3,     ;		09300	      L=L+J2-1
18100		ADD 3,.COMM.+3
18200		MOVEM 3,ALF+=12
18300	;9400	C J4=401 MAKES 4X THICK BARLINE - ONE STAFF
18400	      	MOVE  	02,[3.0]   ;	09500	      RA=RTF
18500	      	MOVEM 	02,BM    
18600		MOVE 3,ALF+=12
18700		CAIG 3,7      ;		09600	      IF(L.LE.7)GO TO 2400
18800	      	JRST  	I2400 ;		09700	      L=7
18900	      	MOVEI 	3,7    ;	09800	      RA=300.
19000	      	MOVSI 	02,211454
19100	      	MOVEM 	02,BM    ; FOR EXTENDING BARS ABOVE STAFF 7
19200	I2400:	MOVE  	02,STF(3)  ;	10100	      RZ=R3Q
19300	      	MOVEM 	02,OLDTOP    ;	10000	2400  OLDTOP=RSTFAC(L)
19400	      	MOVE  	02,ALF+5   
19500	      	MOVEM 	02,ALF+=18    ;	10200	C  SAVE IT FOR DBL RPT BAR.
19600	      	MOVSI 	02,206700    ;	10300	   OLDTOP=STFF(L)+(RA+56.)*OLDTOP
19700	      	FADR  	02,BM    
19800	      	FMPR  	02,OLDTOP    
19900	      	FADR  	02,POSI(3)
20000	      	MOVEM 	02,OLDTOP    ;	10400	1400  RA=1
20100	I1400:	MOVSI 	02,201400
20200	      	MOVEM 	02,BM    ;	10500	      IF(PLT.GE.0)GO TO 140
20300	      	MOVE  	02,PLTR
20400	      	JUMPGE	02,I140    ;	10600	      J7=J7+1
20500		SKIPGE .COMM.+=25
20600		JRA 16,(16)     	  ;DON'T PRINT INVIS BARS. (USED BY 'PAGE')
20700	      	AOS   	J7    
20800	;;    	MOVSI 	02,201400    ;	10700	      RA=1./DIS
20900		MOVE 2,PLTR+3		;RA=XDIS
21000	      	MOVEM 	02,BM    ;	10800	C  BAR LINES PLOT AS DOUBLE THICKNESS
21100	
21200	I140: 	MOVE  	02,ALF+5     ;	10900	140   RJX=R3Q
21300	      	MOVEM 	02,ALF+=10   ;	11000	42    CALL LINES(R3Q,ALF+=8,3)
21400	I42:  	JSA   	16,LINES
21500	      	JUMP ALF+5   
21600	      	JUMP ALF+=8    
21700	      	JUMP [3]		;11100	      RJ=-1.
21800	      	MOVN  	02,[1.0]
21900	      	MOVEM 	02,ALF+=11    ;	11200	      RW=OLDTOP
22000	      	MOVE  	02,OLDTOP    
22100	      	MOVEM 	02,ALF+=9    ;	11300	406   CALL LINES(RJX,OLDTOP,2)
22200	I406: 	JSA   	16,LINES 
22300	      	JUMP ALF+=10   
22400	      	JUMP OLDTOP    
22500	      	JUMP [2]  ;	11400	      IF(J10.EQ.0)GO TO 411
22600	      	MOVE  	02,J10   
22700	      	JUMPE 	02,I411  ;P10 WILL THICKEN VERTICAL (OR MOSTLY VERTICAL) LINES.
22800	      	MOVEM 	02,.COMM.+=28    ;1600	      J7=J10
22900	      	SETZM 	J10        ;	11700	      J10=0
23000	;;    	MOVSI 	02,201400   ;	11800	      RA=1./DIS
23100		MOVE 2,PLTR+3		;RA=XDIS
23200	      	MOVEM 	02,BM    ;	11900	411   IF(J7.GT.0)GO TO 409
23300	I411: 	MOVE  	02,.COMM.+=28    
23400	      	JUMPG 	02,I409  
23500		SKIPG DBR     ;		12000	      IF(DBR.LE.0)RETURN
23600		JRA 16,(16)   ;		12100	      OLDTOP=RW
23700	      	MOVE  	02,ALF+=9    
23800	      	MOVEM 	02,OLDTOP    ;	12300	      RA=RZ-RD
23900	      	MOVN  	02,ALF+7    
24000	      	FADR  	02,ALF+=18    ;	12400	      IF(DBR.NE.1)RA=RJX+RD-1.
24100	      	MOVEI 	3,1
24200	      	CAMN  	3,DBR   
24300	      	JRST  	.+4   
24400	      	MOVN  	02,[1.0]
24500	      	FADR  	02,ALF+7    
24600	      	FADR  	02,ALF+=10    
24700	      	MOVEM 	02,BM    ;	12600	      R3Q=RA
24800	      	MOVEM 	02,ALF+5   ;	12500	      DBR=DBR-2
24900	      	MOVNI 	02,2
25000	      	ADDM  	02,DBR   ;	12700	      GO TO 1400
25100	      	JRST  	I1400 
25200	
25300	I409:	SKIPN .COMM.+7		;IF(R6.EQ.0)GO TO 1402) 12900	C  FOR 'HEAVY' LINE.
25400		JRST I402		;P10= NUM. OF ADDITIONAL LINES.
25500		SOS J7			; ****** ONLY GOOD FOR SLOPEOF LESS THAN 45 DEG.
25600		MOVE 2,J7		;J10=J7-1
25700		MOVEM 2,J10
25800		MOVE 2,BM		;GET SHIFT INCREMENT (DEPENDS ON FINAL SIZE)
25900		MOVE 1,ALF+=8
26000		FSBR 1,OLDTOP		;AC1 HAS AMOUNT OF Y SHIFT IN LINE
26100		MOVMS 1
26200		MOVE 0,ALF+5
26300		FSBR 0,ALF+=10		;AC0 HAS AMOUNT OF X SHIFT IN LINE
26400		MOVMS
26500		FSBR 0,1		;IF AC0-AC1 IS .GE.0 GO TO I1402
26600		JUMPGE I1402
26700		FADRM 2,ALF+5 		;MOVE RIGHT ONE SCAN LINE FOR NEXT VECTOR
26800		FADRM 2,ALF+=10		;ALF+5 AND ALF+=10 ARE THE 2 X COORDS.
26900		JRST I42
27000	I1402:	FADRM 2,ALF+=8		;MOVE UP ONE SCAN LINE FOR NEXT VECTOR
27100		FADRM 2,OLDTOP		;ALF+=8 AND OLDTOP ARE THE 2 Y COORDS.
27200		JRST I42		;GO DRAW IT
27300	
27400	I402:	MOVE  	02,BM    ;	13000	409   RJX=RJX+RA   HEAVIER BAR LINES
27500	      	FADRM 	02,ALF+=10    ;	13100	      CALL LINES(RJX,OLDTOP,2)
27600	      	JSA   	16,LINES 
27700	      	JUMP ALF+=10    
27800	      	JUMP OLDTOP    
27900	      	JUMP [2]    ;		13200	      J7=J7-1
28000	      	SOS   	J7    ;		13300	      OLDTOP=RW
28100	      	MOVE  	02,ALF+=9    
28200		SKIPGE ALF+=11   ;	13400	      IF(RJ)OLDTOP=RX
28300		MOVE 2,ALF+=8
28400		MOVEM 2,OLDTOP    ;	13500	      RJ=-RJ
28500	      	MOVNS 	00,ALF+=11    
28600		JRST I406    ;		13600	      GO TO 406
28700	;13900	C  DRAWS BAR LINES. J4>0 CAUSES FULL LINE.
28800	;				14700	C  FOR CRESC., DECRESC.
28900	I300:	MOVE 2,.COMM.+=8   ;	14800	300   IF(R7.EQ.0)R7=2.3
29000		JUMPG 2,.+7
29100		MOVE 3,[2.3]
29200		JUMPE 2,.+4
29300		CAME 2,[-1.0]
29400		JRST .+3
29500		MOVNS 3
29600		MOVEM 3,.COMM.+=8  ;	14900	      IF(R7.EQ.-1.)R7=-2.3
29700		MOVM 2,.COMM.+=8  ;	15000	      RA=ABS(R7/2.0)*RST7
29800	      	FSC   	02,777777
29900	      	FMPR  	2,ALF+3  
30000	      	MOVEM 	2,BM    ;	15100	C   AMOUNT OF SPREAD
30100	      	MOVE  	3,ALF+5   ;	15200	      RJ=R3Q
30200	      	MOVEM 	3,ALF+=11    ;	15300	      RX=RX-RST18+RD
30300	      	MOVN  	02,ALF+4 
30400	      	FADR  	02,ALF+7    
30500	      	FADRM 	02,ALF+=8    ;	15400	      IF(R8.NE.0)GO TO 302
30600	      	MOVE  	02,R8    
30700	      	JUMPN 	02,I302  ;	15500	C  JUMP TO MAKE BOX
30800	      	JSA   	16,RHORZ  ;	15600	      R6=RHORZ(R6)
30900	      	JUMP .COMM.+7
31000	      	MOVEM 	00,.COMM.+7    ;15700	      IF(R7)GO TO 301
31100	      	MOVE  	02,.COMM.+=8    
31200	      	JUMPL 	02,I301  ;	15800	      RJ=R6
31300	      	MOVEM 	0,ALF+=11    ;	15900	      R6=R3Q
31400	      	MOVEM 	3,.COMM.+7    ;301   CALL LINX(RJ,ALF+=8+RA,.COMM.+7,ALF+=8)
31500	I301: 	MOVE  	14,BM    
31600	      	FADR  	14,ALF+=8    
31700	      	JSA   	16,LINX  
31800	      	JUMP ALF+=11    
31900	      	JUMP 14
32000	      	JUMP .COMM.+7
32100	      	JUMP ALF+=8    ;	16100	      CALL LINES(RJ,ALF+=8-RA,2)
32200	      	MOVN  	14,BM    
32300	      	FADR  	14,ALF+=8    
32400	      	JSA   	16,LINES 
32500	      	JUMP ALF+=11    
32600	      	JUMP 14
32700	      	JUMP [2]   ;FOR CRESC, DECRESC:4 POS1, STF, HGT, 50, POS1, +OR-N(0=2.3,-1=-2.3)
32800		SKIPGE PLTR	;	16400	      IF(PLT.GE.0)RETURN
32900		SKIPGE .COMM.+=29
33000		JRA 16,(16)     ;  THIS MAKES ALL CRESC. DBL THICKNESS AT PRINT TIME.
33100	;				16600	      IF(J8)RETURN
33200	;				16700	      RX=RX+1./DIS
33300		MOVE 2,PLTR+3		;RX=XDIS
33400	      	FADRM 	02,ALF+=8    ;	16800	      J8=-1
33500	      	SETOM .COMM.+=29  ;	16900	C FOR DOUBLE THICKNESS
33600	;				17000	      GO TO 301
33700	      	JRST  	I301  ;		17200	302   R8=R8*RST7
33800	I302:	MOVE  	3,ALF+3  
33900	      	FMPRM 	3,.COMM.+=9    ;17300	      R9=R9*RST7
34000	      	MOVE  	3,ALF+3  
34100	      	FMPRB 	3,R9    ;	17400	      IF(R9.EQ.0)R9=R8
34200	      	JUMPN 	3,.+3   
34300	      	MOVE  	3,.COMM.+=9    
34400	      	MOVEM 	3,.COMM.+=10    ;17500	C  R9=0 MAKES SQUARE
34500	      	MOVE  	02,.COMM.+=9    ;17600	      R3=R3Q-R8/2.
34600	      	FSC   	02,777777
34700	      	FSBR  	02,ALF+5   
34800	      	MOVNM 	02,.COMM.+4    ;17700	      RX=RX-R9/2.
34900	      	FSC   	3,777777
35000	      	FSBR 	3,ALF+=8    
35100	      	MOVNM 3,ALF+=8    ;	17710	      OLDTOP=RX
35200	      	MOVNM 	3,OLDTOP      ;	      IF(R11.NE.0)OLDTOP=OLDTOP+R11*RST7
35300	      	MOVE  	02,.COMM.+=12   
35400	      	JUMPE 	02,.+3   
35500	      	FMPR  	02,ALF+3
35600	      	FADRM 	02,OLDTOP    ; R11 IS OFFSET FOR PARALLELAGRAM
35700	;				17800	      J10=J10
35800	;				17900	C  DRAWS BOX, CENTER IS IN MIDDLE
35900	;		18000	C  4,POSI+=9,STF,NT#,50,0,0,,SIZ1↑BY NT#S↑,SIZ2
36000	I1302:	MOVE  	14,.COMM.+4  ;18100 1302  CALL LINX(R3,ALF+=8,.COMM.+4+R8,OLDTOP)
36100	      	FADR  	14,.COMM.+=9    
36200	      	JSA   	16,LINX  
36300	      	JUMP .COMM.+4    
36400	      	JUMP ALF+=8    
36500	      	JUMP 14    
36600	      	JUMP OLDTOP    ;18200	      CALL LINES(R3+R8,OLDTOP+R9,2)
36700	      	MOVE  	14,.COMM.+4    
36800	      	FADR  	14,.COMM.+=9    
36900	      	MOVE  	13,OLDTOP    
37000	      	FADR  	13,.COMM.+=10    
37100	      	JSA   	16,LINES 
37200	      	JUMP 14
37300	      	JUMP 13
37400	      	JUMP [2]    ;   18300	      CALL LINES(R3,ALF+=8+R9,2)
37500	      	MOVE  	14,ALF+=8    
37600	      	FADR  	14,.COMM.+=10    
37700	      	JSA   	16,LINES 
37800	      	JUMP .COMM.+4    
37900	      	JUMP 14
38000	      	JUMP [2]   ;	18400	      CALL LINES(R3,ALF+=8,2)
38100	      	JSA   	16,LINES 
38200	      	JUMP .COMM.+4    
38300	      	JUMP ALF+=8    
38400	      	JUMP [2]
38500		SKIPN J10         ;	18500	      IF(J10.EQ.0)RETURN
38600	      	JRA 16,(16)    
38700		SOS J10          ;	18600	      J10=J10-1
38800	;				18700	      RJ=1./DIS
38900		MOVE 3,PLTR+3		;RJ=XDIS
39000	      	MOVEM 	3,ALF+=11    ;	18800	      R3=R3-RJ
39100	      	MOVN  	02,ALF+=11    
39200	      	FADRM 	02,.COMM.+4    ;18900	      R8=R8+RJ+RJ
39300	      	FADR  	3,ALF+=11    
39400	      	FADRM 	3,.COMM.+=9    ;19000	      RX=RX-RJ
39500	      	FADRM 	02,ALF+=8    ;	19010	      OLDTOP=OLDTOP-RJ
39600	      	FADRM 	02,OLDTOP    ;	19100	      R9=R9+RJ+RJ
39700	      	FADRM 	 3,.COMM.+=10    ;19200	      GO TO 1302
39800	      	JRST  	I1302   ;TO THICKEN BOXES.      ;1401  R4=2.0
39900	I1401:	MOVSI 	02,202400
40000	      	MOVEM 	02,.COMM.+5    ;19600	C FOR HEAVY BRACK.
40100		MOVE 2,ALF+3	;	19700	      RA=RST7
40200	      	MOVEM 	02,BM    
40300	      	MOVN  	02,BM       ;	19800	      RX=RX-RA
40400	      	FADRM 	02,ALF+=8    ;	19900	C  THE BOTTOM
40500	      	MOVNI 	1,1    ;	20000	      L=J4+J2-1
40600	      	ADD   	1,.COMM.+=25    
40700	      	ADD   	1,J2    
40800	      	MOVE  	3,[3.0]   ;	20100	      R6=RTF
40900		CAIG 1,7	;	20200	      IF(L.LE.7)GO TO 4401
41000	      	JRST  	I4401  
41100		MOVEI 1,7	;	20300	      L=7
41200	      	MOVSI 	3,211454  ;	20400	      R6=300.
41300	I4401:	MOVE 2,POSI(1)  ;	20500	4401  RA=STFF(L)
41400	      	MOVEM 	02,BM    ; SAVE FOR POS. OF BRACK. END ON UPPER STAFF.
41500	      	MOVE  	02,STF(1)  ;	20700	      RJY=RSTFAC(L)
41600	      	MOVEM 	02,BM+2         ;     OLDTOP=RA+R6*RJY+RJY*56.+RJY*RBX
41700	      	FADR  	3,[63.0] 
41800		FMPR 3,BM+2
41900	      	FADR  	3,BM
42000	      	MOVEM 	3,OLDTOP      ;	20900	C  THE TOP
42100	      	MOVSI 	02,204460    ;	21000	      R5=9.5
42200	      	MOVEM 	02,.COMM.+6    ;21100	      GO TO 2401
42300	      	JRST  	I2401       ;	21300	C  DASHES
42400	I401: 	MOVN  	02,ALF+4    ;	21400	401   POS=POS-RST18
42500	      	FADRM 	02,POSI+=9   ;	21600	      IF(J7.LE.0)GO TO 407
42600	      	MOVE  	02,.COMM.+=28    
42700	      	JUMPLE	02,I407  
42800		CAIN 2,4	;	21700	      IF(J7.EQ.4)GO TO 1401
42900	      	JRST  	I1401 
43000		CAIE 2,3	;	21800	      IF(J7.NE.3)GO TO 4001
43100	      	JRST  	I4001 
43200	;21900  NEXT IS FOR VARIABLE LARGE BRACKET. P7=3 P10=THICK. P5=HGT P6=P3
43300	I2401:	MOVEI 	02,3            ;	22000	2401  JA=3
43400	      	MOVEM 	02,.COMM.+1    ;22100	      IF(J10.EQ.0)J10=4
43500	      	MOVE  	02,J10   
43600	      	JUMPN 	02,.+5   
43700	      	MOVSI 	02,203600	;6.0
43800		FMPR 2,PLTR+2		;*DIS  THICKNES FOLLOWS PLOTTER SIZE
43900		FMPR 2,STF+=8		;*RSTJ2      AND STAFF SIZE
44000		KIFIX 2,2
44100	      	MOVEM 	02,J10        ;	DEFAULT VALUE FOR THICKNESS =4*SIZE FACT.
44200	      	MOVN  	02,[0.33]     ;	22300	      R4=R4-RBR
44300	      	FADRM 	02,.COMM.+5    ;22400	      J9=0
44400	      	SETZM .COMM.+=30     ;	22500	      J5=35
44500	      	MOVEI 	02,43
44600	      	MOVEM 	02,.COMM.+=26    ;22600	C  THE NUM FOR THE LITTLE END ITEMS
44700	      	MOVSI 	02,202600     ;	22800	      R6=3
44800	      	MOVEM 	02,.COMM.+7    ;22900	      R7=0
44900	      	SETZM 	.COMM.+=8;DOES LOWER ONE FIRST.  ITEM IS IN 'CLEFC.DMD' ON DAT.LCS
45000		SETZM R8		;R8 MUST BE 0 FOR CLEFS (ELSE IT ACTIVATES THICKENER)
45100	      	MOVE 	02,.COMM.+=29      ;	23100	      IF(J8.NE.2)CALL CLEFS
45200		MOVEM 2,RH		  ;SAVE J8 IN RH  (J8 WIPED OUT IN CLEFS)
45300	      	CAIE  	02,2
45400	      	JSA   	16,CLEFS ;P8=1=BOTTOM 1/2 BRACK. ONLY:  =2=TOP 1/2 ONLY:  0=COMPLETE
45500	      	MOVN  	3,[0.33]        ;23300	      R4=R5-RBR
45600	      	FADR  	3,.COMM.+6    
45700	      	MOVEM 	3,.COMM.+5    ;	23400	      R6=3
45800	      	MOVSI 	02,202600
45900	      	MOVEM 	02,.COMM.+7    ;23500	      R7=-3
46000	      	MOVNM 	02,.COMM.+=8    ;23600	C  TURNS IT UPSIDE DOWN.
46100	      	MOVEI 	02,4           ;23800	      IF(J7.NE.4)GO TO 3401
46200	      	CAME  	02,.COMM.+=28    
46300	      	JRST  	I3401         ;	23900	      POS=RA
46400	      	MOVE  	02,BM    
46500	      	MOVEM 	02,POSI+=9   ;	24000	      R4=R4*RJY/RSTJ2
46600	      	FMPR  	3,BM+2
46700	      	FDVR  	3,STF+=8 
46800	      	MOVEM 	3,.COMM.+5 ;TO ADJUST HEIGHT OF BRACK END WHEN STAVES ARE DIFF. SIZES.
46900	I3401:	MOVEI 	02,1       ;	24200	3401  IF(J8.NE.1)CALL CLEFS
47000	      	CAME  	02,RH	   ; RH IS CURRENTLY J8 (INTEGER I.E.)
47100	      	JSA   	16,CLEFS 	;24300	      R3Q=R3Q-12.0*RSTJ2
47200	      	MOVSI 	02,204600
47300	      	FMPR  	02,STF+=8 
47400	      	FSBRM 	02,ALF+5   
47500	      	MOVNS 	00,ALF+5     ;	24400	      IF(J7.NE.4)GO TO 407
47600	      	MOVEI 	02,4
47700	      	CAME  	02,.COMM.+=28    
47800	      	JRST  	I407  ;		24500	      J7=0
47900	      	SETZM 	.COMM.+=28   ;	24600	      GO TO 140
48000	      	JRST  	I140         ;	24800	4002  J5=5 
48100	I4002:	MOVEI 	02,5  		;FOR CURVY BRACKET.  P8 CAN CHANGE WIDTH.
48200	      	MOVEM 	02,.COMM.+=26    ;	25100	      J4=J4+J2-1
48300	      	MOVNI 	3,1
48400	      	ADD   	3,.COMM.+3
48500	      	ADDB 	3,.COMM.+=25 ;R7=(.3136*RSTFAC(J4)+.0056*(STFF(J4)-STFF(J2)))/RSTJ2
48600	      	MOVE  	02,[0.3136]
48700	      	FMPR  	02,STF(3)
48800	      	MOVE  	04,POSI(3)
48900	      	MOVE  	03,J2    
49000	      	FSBR  	04,POSI(3)
49100	      	FMPR  	04,[0.0056]
49200	      	FADR  	02,4
49300	      	FDVR  	02,STF+=8 
49400	      	MOVEM 	02,.COMM.+=8    
49500	;25300	 .0056=.0392/7.(THE MAGIC NUM FOR VERT SIZE OF BRACK.) .3136=8*.0392
49600	;25400	  ADD DIST BETWEEN BOTTOM OF STAVES TO HEIGHT OF TOP STAFF
49700	      	MOVE  	2,.COMM.+=9   ;	25500	      IF(R6.EQ.0)R6=1.+R7/20.
49800		SETZM .COMM.+=9		;***** USE P8 FOR WIDTH FACTOR!! *****
49900		SETZM .COMM.+=29	;J8=0
50000	      	JUMPN 	2,.+3   	;P6=P8;  P8=0
50100	      	FDVR  	02,[20.0]
50200	      	FADRI 	02,201400
50300	      	MOVEM 	02,.COMM.+7    ;25600	      JA=3
50400	      	MOVEI 	02,3
50500	      	MOVEM 	02,.COMM.+1    ;25700	      R4=2.3
50600	      	MOVE  	02,[2.3]
50700	      	MOVEM 	02,.COMM.+5 ;BECAUSE BRACK DOESN'T REALLY GO UP FROM 0 ?!?X*↑
50800	;				25900	      CALL CLEFS
50900	      	JSA   	16,CLEFS      ;	26000	      RETURN
51000	      	JRA 16,(16)    
51100	I4001:	CAIN 2,5	;	26200	4001  IF(J7.EQ.5)GO TO 4002
51200	      	JRST  	I4002 	; J7 IS IN AC2
51300	      	MOVE  	02,.COMM.+=9    ;26300	      IF(R8.LE.0)R8=.8
51400	      	JUMPG 	02,.+3   	;NO NEG. NUMBS!!!! 2/78
51500	      	MOVE  	02,[0.8]
51600	      	MOVEM 	02,.COMM.+=9    ;26400	C  P8 CAN SET SIZE OF DASH
51700	      	MOVE  	02,[5.96] ;	26402	      RZ=5.96*RSTJ2
51800	      	FMPR  	02,STF+=8 
51900	      	MOVEM 	02,ALF+=18    ;	26405	      RJ=R8*RZ
52000	      	FMPR  	02,.COMM.+=9    
52100	      	MOVEM 	02,ALF+=11     ;26410	      RZ=R9*RZ
52200	      	MOVE  	3,.COMM.+=10    
52300	      	FMPRM 	3,ALF+=18    
52400		SKIPN .COMM.+=10   ;	26420	      IF(R9.EQ.0)RZ=RJ
52500	      	MOVEM 	02,ALF+=18    
52600	;26430	  P9 SETS SPACE BETWEEN DASHES. (CAN BE DIFFERENT FROM P8)
52700	;				26440	      R8=RJ
52800	      	MOVEM 	02,.COMM.+=9    ;26450	      R9=RZ
52900	      	MOVE  	02,ALF+=18    
53000	      	MOVEM 	02,.COMM.+=10    ;26500	      RD=RD+POS
53100	      	MOVE  	02,POSI+=9   
53200	      	FADRB 	02,ALF+7      ;	26600	      RJX=RD
53300	      	MOVEM 	02,ALF+=10    ;	27100	      RJY=RD
53400	      	MOVEM 	02,BM+2   
53500	;26700	 =1 =DASHES,  P6=P3=VERTICAL; P4=P5=HORIZ.; OTHERWISE SLOPE.
53600	      	JSA   	16,RHORZ ;	26800	      J6=ROFF(RHORZ(R6))
53700	      	JUMP .COMM.+7
53800	      	MOVE 4,0
53900	      	JSA   	16,ROFF  
54000	      	JUMP 4
54100	      	KIFIX 0,0	
54200	      	MOVEM 	00,.COMM.+=27    
54300		SUBM 0,.COMM.+=24  ;	26900	      J3=J6-J3
54400	;				27000	      J4=J5-J4
54500		MOVE 2,.COMM.+=6	;NOW J4=R5-R4 (J4 IS FLTING PT)
54600		FSBR 2,.COMM.+5
54700		MOVEM 2,.COMM.+=25	; CHECKS FOR TILT, USED LATER
54800		FLTR 0,.COMM.+=27	;MOVE .COMM.+=27 27200	C SAVE FOR THICK LINES
54900				;	TLC 0,232000     ;	27300	      RA=J6
55000				;	FADR 0,0
55100	      	MOVEM 	00,BM    ;	27400	C RA IS HORIZ. GOAL FOR DASHES
55200	;				27500	402   OLDTOP=POS+R5*RST7
55300	 	MOVE  	02,ALF+3  	; LABEL 402 NOT USED
55400	      	FMPR  	02,.COMM.+6    
55500	      	FADR  	02,POSI+=9   
55600	      	MOVEM 	02,OLDTOP       ;	27600	      IF(J4.EQ.0)GO TO 41
55700	      	MOVE  	3,.COMM.+=25    
55800	      	JUMPE 	3,I41       ;	27700	      RH=OLDTOP-RD
55900	;				27800	C TOTAL HEIGHT DIFF.
56000	      	MOVN  	3,.COMM.+4    ;	27900	      RX=RA-R3
56100	      	FADR  	3,BM    
56200	      	MOVEM 	3,ALF+=8      ;	28000	C TOTAL LENGTH DIFF.
56300		FSBR 2,ALF+7          ;	28100	      RH=RH/RX
56400	      	FDVR  	02,ALF+=8    
56500	      	MOVEM 	02,RH#       ;	28200	41    L=3
56600	I41:  	MOVEI 	02,3
56700	      	MOVEM 	02,ALF+=12     ;28300	      K=2
56800	      	MOVEI 	02,2
56900	      	MOVEM 	02,ALF+=13     ;28400	416   CALL LINES(R3Q,ALF+7,ALF+=12)
57000	I416: 	JSA   	16,LINES 
57100	      	JUMP ALF+5   
57200	      	JUMP ALF+7    
57300	      	JUMP ALF+=12         ;	28405	      IF(J3.EQ.0)GO TO 412
57400	      	MOVE  	02,.COMM.+=24    
57500	      	JUMPE 	02,I412  	;28407	C  JUMP FOR VERT. DASH
57600		MOVE 3,ALF+5	;(R3Q) ;28410	      IF(J3.GT.0)GO TO 422
57700	  	JUMPG 	02,I422     ;	28420	      IF(R3Q.LE.RA)GO TO 413
57800	      	CAMG  	3,BM    
57900	      	JRST  	I413      ;	28425	C THIS IF P6 IS LESS THAN P3
58000	;				28430	      R3Q=R3Q-RJ
58100	      	MOVN  	02,ALF+=11    ;	28440	      GO TO 423
58200	      	JRST  	I423       ;	28500	422   IF(R3Q.GE.RA)GO TO 413
58300	I422:	 CAML 	3,BM    
58400	      	JRST  	I413      ;	28600	C  JUMP IF ALL DONE
58500	      	MOVE  	02,ALF+=11    ;	28700	      R3Q=R3Q+RJ
58600	I423:   FADRB 	02,ALF+5        ;28710	423   IF(J4.NE.0)RD=RJY+RH*(R3Q-R3)
58700	 	MOVE  	3,.COMM.+=25    ; J4 HAS TILT(SEE I402 -)
58800	      	JUMPE 	3,.+5   
58900	      	FSBR  	02,.COMM.+4    
59000	      	FMPR  	02,RH    
59100	      	FADR  	02,BM+2   
59200	      	MOVEM 	02,ALF+7    ;28720	FINDS HEIGHT OF RIGHT SIDE OF SLOPE
59300	I414:	MOVE 2,ALF+=12    ;	28800	414   CALL EXCH(L,ALF+=13)
59400		EXCH 2,ALF+=13
59500		MOVEM 2,ALF+=12
59600		MOVE 2,ALF+=11   ;	28810	      CALL EXCH(RJ,ALF+=18)
59700		EXCH 2,ALF+=18
59800		MOVEM 2,ALF+=11    ;	28820	C  EXCH. SPACE AND DASH SIZE.
59900	      	JRST  	I416  	   ;	28900	      GO TO 416
60000	I412:	MOVE 1,ALF+7	;28950	412   IF(J4.GT.0)GO TO 424
60100		MOVE  	02,.COMM.+=25    
60200	      	JUMPG 	02,I424     ;	28960	      IF(RD.LE.OLDTOP)GO TO 413
60300	      	CAMG  	1,OLDTOP    
60400	      	JRST  	I413        ;	28970	      RD=RD-RJ
60500	      	MOVN  	02,ALF+=11    
60600	      	FADRM 	02,ALF+7    ;	28980	C  THIS IF P5 IS LESS THAN P4.
60700	      	JRST  	I414       ;	28990	      GO TO 414
60800	I424:  	CAML  	1,OLDTOP	    ;29000	424   IF(RD.GE.OLDTOP)GO TO 413
60900	      	JRST  	I413       ;	29100	C  JUMP IF DONE
61000	      	MOVE  	02,ALF+=11    ;	29200	      RD=RD+RJ
61100	      	FADRM 	02,ALF+7    ;	29300	      GO TO 414
61200	      	JRST  	I414  	    ;	29400	413   IF(J10.GT.0)GO TO 420
61300	I413: 	MOVE  	02,J10          
61400	      	JUMPG 	02,I420  
61500		SKIPN .COMM.+=32  ;	29410	      IF(J11.EQ.0)RETURN
61600	      	JRA 16,(16)    
61700		SKIPGE .COMM.+=24  ;	29415	      IF(J3)RJ=-RJ
61800	      	MOVNS 	00,ALF+=11    ;	29420	      IF(L.EQ.3)R3Q=R3Q-RJ
61900	      	MOVEI 	02,3
62000	      	CAME  	02,ALF+=12     
62100	      	JRST  	.+3   
62200	      	MOVN  	02,ALF+=11    
62300	      	FADRM 	02,ALF+5   ;	29430	      RX=R8
62400	      	MOVE  	02,.COMM.+=9    
62500	      	MOVEM 	02,ALF+=8    
62600		SKIPGE .COMM.+=32  ;	29440	      IF(J11)RX=-RX
62700	      	MOVNS 	00,ALF+=8    ;29450   CALL LINX(R3Q,ALF+7,ALF+5,ALF+7+RX)
62800	      	MOVE  	14,ALF+7    
62900	      	FADR  	14,ALF+=8    
63000	      	JSA   	16,LINX  
63100	      	JUMP ALF+5   
63200	      	JUMP ALF+7    
63300	      	JUMP ALF+5   
63400	      	JUMP 14	    ;	29460	C PUTS BRACK END ON DASHED LINE. (P11=1 OR -1)
63500	;				29470	      RETURN
63600	      	JRA 16,(16)       ;	29500	C  NEXT FOR THICK DASHES
63700	;				29600	420   J10=J10-1
63800	I420: 	SOS   	J10        ;	29650	      RJ=1./DIS
63900		MOVE 3,PLTR+3		;AC3=XDIS
64000	;;    	FDVR  	3,PLTR+2   ;	29700	      IF(J3.EQ.0)GO TO 415
64100	      	MOVE  	02,.COMM.+=24    
64200	      	JUMPE 	02,I415       ;	29800	      R3Q=R3
64300	      	MOVE  	02,.COMM.+4    
64400	      	MOVEM 	02,ALF+5      ;	29900	      RJY=RJY+RJ
64500	      	FADRB 	3,BM+2         ;29950	      RD=RJY
64600	      	MOVEM 	3,ALF+7        ;30000	      GO TO 417
64700	      	JRST  	I417         ;	30100	415   R3Q=R3Q+RJ
64800	I415: 	FADRM 	3,ALF+5       ;	30200	      RD=RJX
64900	      	MOVE  	02,ALF+=10   
65000	      	MOVEM 	02,ALF+7       ;30210	417   RJ=R8
65100	I417: 	MOVE  	02,.COMM.+=9    
65200	      	MOVEM 	02,ALF+=11    ;	30220	      RZ=R9
65300	      	MOVE  	02,.COMM.+=10    
65400	      	MOVEM 	02,ALF+=18    ;	30230	C  FOR THICK DASHES.
65500	;				30300	      GO TO 41
65600	      	JRST  	I41   	      ;	30600	407   RX=RD+POS
65700	I407: 	MOVE  	02,ALF+7    
65800	      	FADR  	02,POSI+=9   
65900	      	MOVEM 	02,ALF+=8     ;	30700	      OLDTOP=R5*RST7+POS
66000	      	MOVE  	02,ALF+3  
66100	      	FMPR  	02,.COMM.+6    
66200	      	FADR  	02,POSI+=9   
66300	      	MOVEM 	02,OLDTOP    
66400		MOVMS .COMM.+=9		;***** R8=ABS(R8) NO NEG, TOLERATED!!! 2/78
66500		MOVE 3,.COMM.+=28  ;	30800	      IF(J7.EQ.3)GO TO 140
66600		CAIN 3,3
66700	      	JRST  	I140  	      ;	30900	      CALL NOZERO(R9)
66800	      	JSA   	16,NOZERO
66900	      	JUMP .COMM.+=10
67000		CAMN 3,[-1]   ;		31000	      IF(J7.EQ.-1)GO TO 408
67100	      	JRST  	I408  
67200	;	31100	C  FOR 'TR' J7=-2, 'ARPEGG' J7=-1,  STRAIGHT LINES J7=0
67300	;	31200	CC  WHY THE IFIX????	RJX=IFIX(RHORZ(R6))
67400	      	JSA   	16,RHORZ ;	31300	      RJX=IFIX(ROFF(RHORZ(R6)))
67500	      	JUMP .COMM.+7
67600		MOVE 4,
67700	      	JSA   	16,ROFF  
67800		JUMP 4
67900		KIFIX 0,0		;MOVE 4,
68000				;     	JSA   	16,IFIX  
68100				;	JUMP 4
68200		FLTR 0,0		;TLC 0,232000
68300					;FADR 0,0
68400	      	MOVEM 	00,ALF+=10   
68500	;31400	C  ALL THIS CRAP SO IT WILL MATCH UP WITH P3 WHEN NECESSARY.
68600	      	MOVE  	02,.COMM.+=28    ;31500	      IF(J7.EQ.0)GO TO 42
68700	      	JUMPE 	3,I42   ;	31600	      OLDTOP=R9*RST7+RX
68800	      	MOVE  	02,ALF+3  
68900	      	FMPR  	02,.COMM.+=10    
69000	      	FADR  	02,ALF+=8    
69100	      	MOVEM 	02,OLDTOP    ;	31700	      CALL NOZERO(R8)
69200	    	JSA   	16,NOZERO
69300	    	JUMP .COMM.+=9  ;	31800	4041  RZ=RX
69400	I4041:	MOVE  	02,ALF+=8    
69500	      	MOVEM 	02,ALF+=18    ;	31900	      RH=OLDTOP
69600	      	MOVE  	14,OLDTOP    
69700	      	MOVEM 	14,RH    ;32000	C  SAVE FOR THICK WIGGLES
69800	      	JSA   	16,LINES ;32100	      CALL LINES(R3Q,ALF+=8,3)
69900	      	JUMP ALF+5   
70000	      	JUMP ALF+=8    
70100	      	JUMP [3]   ;		32200	C  DRAWS STRAIGHT LINES. ETC.
70200	      	MOVE  	02,ALF+5   ;	32300	      R9=R3Q
70300	      	MOVEM 	02,.COMM.+=10    ;32400	      RJ=OLDTOP
70400	      	MOVEM 	14,ALF+=11    ;	32500	      RW=3.*RSTJ2*R8
70500	      	MOVSI 	02,202600
70600	      	FMPR  	02,STF+=8 
70700	      	FMPR  	02,.COMM.+=9    
70800	      	MOVEM 	02,ALF+=9    ;	32600	      RA=RW*2.5
70900	      	MOVSI 	02,202500
71000	      	FMPR  	02,ALF+=9    
71100	      	MOVEM 	02,BM    ;	 P8=HORZ. WIGGLE SIZE;  P9=VERT. SIZE
71200	I404: 	MOVE  	02,BM    ;	32800	404   R9=R9+RA
71300	      	FADRM 	02,.COMM.+=10    ;32900	      CALL LINES(R9,ALF+=11,2)
71400	      	JSA   	16,LINES 
71500	      	JUMP .COMM.+=10
71600	      	JUMP ALF+=11    
71700	      	JUMP [2]   ;	33000	      R9=R9+RW
71800	      	MOVE  	14,ALF+=9    
71900	      	FADRB 	14,.COMM.+=10    ;33100	      CALL LINES(R9,ALF+=11,2)
72000	      	JSA   	16,LINES 
72100	      	JUMP .COMM.+=10
72200	      	JUMP ALF+=11    
72300	      	JUMP [2]
72400	I405:	MOVE ALF+=8  ;		33200	405   CALL EXCH(RX,ALF+=11)
72500		EXCH ALF+=11
72600		MOVEM ALF+=8
72700		CAMGE 14,ALF+=10  ;	33300	      IF(R9.LT.RJX)GO TO 404
72800	      	JRST  	I404  
72900		SKIPG .COMM.+=31   ;	33400	      IF(J10.LE.0)RETURN
73000	      	JRA 16,(16)    
73100		MOVE 2,PLTR+3		;OLDTOP=XDIS
73200	      	MOVEM 	02,OLDTOP    ;	33500	      RX=RZ+OLDTOP
73300	      	FADR  	02,ALF+=18
73400	      	MOVEM 	02,ALF+=8    ;	33600	      OLDTOP=RH+OLDTOP
73500	      	MOVE  	02,RH    
73600	      	FADRM 	02,OLDTOP    
73700		SOS .COMM.+=31   ;	33700	      J10=J10-1
73800	      	JRST  	I4041 ;		33800	      GO TO 4041
73900	;			33900	C  P10= + NUM OF THICKNESSES TO WIGGLE
74000	I408: 	MOVE  	02,ALF+=8    ;34100	408   IF(RX.GT.OLDTOP)CALL EXCH(RX,OLDTOP)
74100		CAMLE 2,OLDTOP
74200		EXCH 2,OLDTOP
74300		MOVEM 2,ALF+=8	;	34200	      RZ=R9*RSTJ2*5.96
74400	      	MOVE  	02,STF+=8 
74500	      	FMPR  	02,.COMM.+=10    
74600	      	FMPR  	02,[5.96]
74700	      	MOVEM 	02,ALF+=18    ;USE P9 TO SET WIGGLE WIDTH.  P8 TO SET HGT.
74800	      	JSA   	16,NOZERO ;	34400	      CALL NOZERO(R8)
74900	      	JUMP .COMM.+=9	;	34500	      RD=R8*RST7*.5
75000	    	MOVE  	02,ALF+3  
75100	    	FMPR  	02,.COMM.+=9    
75200	      	FSC   	02,777777
75300	      	MOVEM 	02,ALF+7    ;	34600	      RJ=RD
75400	      	MOVEM 	02,ALF+=11    ;	34700	      IF(RD.LT.1.)RD=1.
75500	      	MOVSI 	02,201400
75600	      	CAMLE 	02,ALF+7    
75700		MOVEM 2,ALF+7	;	34800	421   R9=RX
75800	I421: 	MOVE  	02,ALF+=8    
75900	      	MOVEM 	02,.COMM.+=10    ;34900	      RW=R3Q
76000	      	MOVE  	02,ALF+5   
76100	      	MOVEM 	02,ALF+=9    ;	35000	      RA=RZ+R3Q
76200	      	FADR  	02,ALF+=18    
76300	      	MOVEM 	02,BM    ;35100	CALL LINES(RW,.COMM.+=10,3)
76400	      	JSA   	16,LINES 
76500	      	JUMP ALF+=9
76600	      	JUMP .COMM.+=10
76700	      	JUMP [3]      ;		35200	410   R9=R9+RJ
76800	I410: 	MOVE  	02,ALF+=11    
76900	      	FADRM 	02,.COMM.+=10    ;35300	      CALL LINES(RA,.COMM.+=10,2)
77000	      	JSA   	16,LINES 
77100	      	JUMP BM    
77200	      	JUMP .COMM.+=10
77300	      	JUMP [2]	;	35400	      R9=R9+RD
77400	      	MOVE  	02,ALF+7    
77500	      	FADRM 	02,.COMM.+=10    ;35500	      CALL LINES(RA,.COMM.+=10,2)
77600	      	JSA   	16,LINES 
77700	      	JUMP BM    
77800	      	JUMP .COMM.+=10
77900	      	JUMP [2]
78000		MOVE BM		;	35600	      CALL EXCH(RA,ALF+=9)
78100		EXCH ALF+=9
78200		MOVEM BM     ;		35700	      IF(R9.LT.OLDTOP)GO TO 410
78300	      	MOVE  	02,OLDTOP    
78400	      	CAMLE 	02,.COMM.+=10    
78500	      	JRST  	I410  
78600		SKIPG .COMM.+=31    ;	35800	      IF(J10.LE.0)RETURN
78700	      	JRA 16,(16)      ;	35900	      R3Q=R3Q+1./DIS
78800		MOVE 2,PLTR+3		;XDIS
78900	      	FADRM 	02,ALF+5   
79000		SOS .COMM.+=31    ;	36000	      J10=J10-1
79100		JRST I421	;	36100	      GO TO 421
79200	      	JRA 16,(16)    ;36200	C  VERTICAL WIGGLE   P10=+ NUM OF THICKNESSES.
79300		END		;	36300	      END